.\" Copyright (C) 2010-2013 Shang-Rong Cai. All rights reserved.
.\" 
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 
.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\" 
.\" $ BASE: bscdef.3    Rev. 1.1.0    2013-03-06T00:11+08:00 $
.TH BSCDEF 3 2013-03-06 "BASE 1.2" "Base Architecture Source Equipment"
.SH NAME
\fBbscdef\fP - basic type and macro code definition
.SH SYNOPSIS
\fB#include <bscdef.h>\fP

\fIsidx_t\fP \fIsidx\fP;

\fIuidx_t\fP \fIuidx\fP;

\fIcell_t\fP \fIetyp\fP;

\fIface_t\fP \fIface\fP;

.SH DESCRIPTION
This header file defines the abstract macro identifier for indicating the cell 
or element types, and also some basic variable types such as signed index type 
\fBsidx_t\fP, unsigned index type \fBuidx_t\fP, cell type \fBcell_t\fP, and 
face type \fBface_t\fP.  The index type is a switchable integer type of 32 bits 
by default and can be changed to be 64 bits by defining the macro 
\fBINDEX_64\fP be true, that is, \fBINDEX_64=YES\fP.

.SH RETURN VALUES
The index numbering style has two styles: C-style numbering starting from 0 and 
natural style numbering starting from 1.
.TP
\fBC_STYLE\fP
C style numbering.
.TP
\fBN_STYLE\fP
Natural style numbering.

.LP
Here define some cell type identifiers but not all supported in this package.
.TP
\fBCT_UND_CELL\fP
Undefined cell type.
.TP
\fBCT_UNI_VERT\fP
Unit vertex
.TP
\fBCT_MUL_VERT\fP
Multiple vertices.
.TP
\fBCT_STD_EDGE\fP
Standard edge.
.TP
\fBCT_STR_EDGE\fP
Strip edge.
.TP
\fBCT_STD_TRIA\fP
Standard triangle.
.TP
\fBCT_STR_TRIA\fP
Strip triangle.
.TP
\fBCT_STD_POLY\fP
Standard polygon.
.TP
\fBCT_STD_PIXE\fP
Standard pixel.
.TP
\fBCT_STD_QUAD\fP
Standard quadrilateral
.TP
\fBCT_STD_TETR\fP
Standard tetrahedron
.TP
\fBCT_STD_VOXE\fP
Standard voxel
.TP
\fBCT_STD_HEXA\fP
Standard hexahedron
.TP
\fBCT_STD_WEDG\fP
Standard wedge.
.TP
\fBCT_STD_PYRA\fP
Standard pyramid.
.TP
\fBCT_QDR_EDGE\fP
Quadratic edge.
.TP
\fBCT_QDR_TRIA\fP
Quadratic triangle.
.TP
\fBCT_QDR_QUAD\fP
Quadratic quadrilateral.
.TP
\fBCT_QDR_TETR\fP
Quadratic tetrahedron.
.TP
\fBCT_QDR_HEXA\fP
Quadratic hexahedron.
.TP
\fBCT_QDR_WEDG\fP
Quadratic wedge.
.TP
\fBCT_QDR_PYRA\fP
Quadratic pyramid.
.TP
\fBCT_EXT_TRIA\fP
Extra triangle.
.TP
\fBCT_EXT_QUAD\fP
Extra quadrilateral.
.TP
\fBCT_EXT_TETR\fP
Extra tetrahedron.
.TP
\fBCT_EXT_HEXA\fP
Extra hexahedron.
.TP
\fBCT_HYB_TYPE\fP
Hybrid type.

.LP
Some miscellaneous macro definitions.
.TP
\fBDEFAULT_APC\fP
Default average nodes per cell.  The value is 32.
.TP
\fBDEFAULT_PUR\fP
Default metaphysical processing unit (MPU) rank (PUR).  The value is 0.
.TP
\fBDEFAULT_TAG\fP
Default tag for MPI send and receive.  The value is 1.

